PWA могут использовать свойство «display_override» для работы со специальными режимами отображения.
Манифест веб-приложения — это файл JSON, который сообщает браузеру о вашем Progressive Web App и о том, как оно должно себя вести при установке на настольном компьютере или мобильном устройстве пользователя. С помощью свойства display
вы можете настроить, какой пользовательский интерфейс браузера будет отображаться при запуске вашего приложения. Например, вы можете скрыть адресную строку и Chrome браузера. Игры можно даже заставить запускаться в полноэкранном режиме. В качестве краткого обзора ниже приведены режимы отображения, которые были указаны на момент написания этой статьи.
Свойство | Использовать |
---|---|
fullscreen | Открывает веб-приложение без пользовательского интерфейса браузера и занимает всю доступную область экрана. |
standalone | Открывает веб-приложение, чтобы оно выглядело и работало как отдельное приложение. Приложение работает в своем собственном окне, отдельно от браузера, и скрывает стандартные элементы пользовательского интерфейса браузера, такие как строка URL. |
minimal-ui | Этот режим похож на standalone , но предоставляет пользователю минимальный набор элементов пользовательского интерфейса для управления навигацией (например, «Назад» и «Перезагрузка»). |
browser | Стандартный браузерный интерфейс. |
Эти режимы отображения следуют четко определенной цепочке отката ( "fullscreen"
→ "standalone"
→ "minimal-ui"
→ "browser"
). Если браузер не поддерживает заданный режим, он возвращается к следующему режиму отображения в цепочке.
Недостатки свойства display
Проблема с этим жестко запрограммированным подходом к резервной цепочке состоит из трех частей:
- Разработчик не может запросить
"minimal-ui"
не будучи вынужденным вернуться в режим отображения"browser"
в случае, если"minimal-ui"
не поддерживается данным браузером. - Разработчики не имеют возможности учитывать различия между браузерами, например, включает или исключает браузер кнопку «Назад» в окне для
"standalone"
режима. - Текущее поведение делает невозможным введение новых режимов отображения с сохранением обратной совместимости, поскольку такие исследования, как режим вкладок приложения, не имеют естественного места в цепочке отката.
Свойство display_override
Эти проблемы решаются свойством display_override
, которое браузер рассматривает до свойства display
. Его значение представляет собой последовательность строк, которые считаются упорядоченными, и применяется первый поддерживаемый режим отображения. Если ни один из них не поддерживается, браузер возвращается к оценке поля display
.
В приведенном ниже примере цепочка отката режима отображения будет выглядеть следующим образом. (Подробности "window-controls-overlay"
выходят за рамки этой статьи.)
-
"window-controls-overlay"
(Сначала посмотрите наdisplay_override
.) -
"minimal-ui"
-
"standalone"
(Когдаdisplay_override
исчерпан, оценитьdisplay
.) -
"minimal-ui"
(Наконец, используйте резервную цепочкуdisplay
.) -
"browser"
{
"display_override": ["window-controls-overlay", "minimal-ui"],
"display": "standalone",
}
Для сохранения обратной совместимости любой будущий режим отображения будет приемлем только как значение display_override
, но не display
. Браузеры, которые не поддерживают display_override
возвращаются к свойству display
и игнорируют display_override
как неизвестное свойство манифеста веб-приложения.
Полезные ссылки
- Объяснитель
- Тема «Намерение отправить»
- Ошибка хрома
- Запись статуса Chrome
- Репозиторий инкубаций манифеста
Благодарности
Свойство display_override
было формализовано Дэниелом Мерфи .